﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("введите номер задачи");
            int choice = Int32.Parse(Console.ReadLine());
            switch (choice)
            {
                case (1):
                    {
                    Console.Clear();
                    Task1();
                    }
            break;
            case (2):
                    {
                    Console.Clear();
                    Task2();
                    }
                    break;
            case (3):
                    {
                        Console.Clear();
                        Task3();
                    }
                    break;
            case (4):
                    {
                        Console.Clear();
                        Task4();
                    }
                    break;
            case (5):
                    {
                        Console.Clear();
                        Task5();
                    }
                    break;




            }
        }
        static void Task1()
        {
            int max = Int32.MinValue;
            int[] array = new int[5];
            for (int i = 0; i < array.Length; i++) 
            {
                Console.WriteLine("введите число");
                array[i] = Int32.Parse(Console.ReadLine());
                if (array[i] > max) max = array[i];
            }
                
            Console.WriteLine("максимальное число: {0}",max);

            for (int i = 0; i <array.Length; i++)
            {
                Console.Write("{0} ", array[i]);
            }
        }
        static void Task2()
        {
            int min = Int32.MaxValue;
            Console.WriteLine("введите количество элементов массива");
            int[] array = new int[Int32.Parse(Console.ReadLine())];
            for (int i = 0; i < array.Length; i++)
            {
                Console.WriteLine("введите число");
                array[i] = Int32.Parse(Console.ReadLine());
                if (array[i] < min) min = array[i];
            }
            Console.WriteLine("минимальное число: {0}", min);

            for (int i = 0; i < array.Length; i++)
            {
                if (array[i] - min == 5) Console.WriteLine("{0} отличается от минимального на 5", array[i]);
            }

        }
        static void Task3()
        {
            int max = Int32.MinValue;
            int sum=0;
            int sumBeforeMax=0;
            Console.WriteLine("введите количество элементов массива");
            int[] array = new int[Int32.Parse(Console.ReadLine())];
            Console.Clear();
            for (int i = 0; i < array.Length; i++)
            {
                Console.WriteLine("введите число");
                array[i] = Int32.Parse(Console.ReadLine());
                sum = sum + array[i];
                if (array[i] > max)
                {
                    max = array[i];
                    sumBeforeMax = sum - array[i];
                }

            }
            Console.WriteLine("максимальное число: {0}", max);
            Console.WriteLine("сумма элементов массива до максимального равна {0}", sumBeforeMax);
        }
        static void Task4()
        {
            int[] array = new int[8];
            int lastNegative=0;
            int address=0;
            for (int i = 0; i < array.Length; i++)
            {
                Console.WriteLine("введите элемент массива");
                array[i] = Int32.Parse(Console.ReadLine());
                if (array[i] < 0)
                    {
                    lastNegative = array[i];
                    address = i+1;
                    }
            }
            for (int j = 0; j < array.Length; j++)
            {
                Console.Write(" {0}", array[j]);
            }
            Console.WriteLine();
            if (lastNegative != 0) Console.WriteLine("последний отрицательный элемент массива {0} находится под номером {1}", lastNegative, address);
            else Console.WriteLine("в массиве нет отрицательных чисел");
        }
        static void Task5()
        {
            double maxElement = Int32.MinValue;
            int address = 0;
            double sum = 0;
            Console.WriteLine("введите количество элементов массива");
            double[] array = NewArray(Int32.Parse(Console.ReadLine()));
            Console.Clear();
            for (int i = 0; i < array.Length; i++)
            {
                sum+= array[i];

                if (array[i] >= maxElement)
                {
                    maxElement = array[i];
                    address = i;
                }
            }
            for (int i = 0; i < array.Length; i++)
            {
                Console.Write(" {0}", array[i]);
            }
            Console.WriteLine();
            Console.WriteLine("максимальный элемент массива равен {0}", maxElement);
            double averageValue = sum / array.Length;
            Console.WriteLine("среднее значение элементов массива равно {0} ", averageValue);
            for(int i=address+1; i<array.Length;i++)
            {
                array[i] = averageValue;
            }
            Console.WriteLine();
            for (int i = 0; i < array.Length; i++)
            {
                Console.Write(" {0}", array[i]);
            }
            Console.ReadKey();
        }
        static double[] NewArray(int arraySize)
        {
        double[] array = new double[arraySize];
        Console.Clear();
        for (int i = 0; i < arraySize; i++)
        {
        Console.WriteLine("введите число");
        array[i] = Int32.Parse(Console.ReadLine());
        }
        return array;

        }
    }
}
